<?php

include_once 'Conexion.php';

class ConceptoContable extends Conexion{
    private $idconceptoContable;
    private $idFactura;
    private $idNota;
    private $idOrden;
    private $cantidad;
    private $precioUnidad;
    private $descripcion;
    
    function registrarParaNota (ConceptoContable $nuevo) {
        $this->conectar();
        
//        echo "IDNOTA $nuevo->idNota<br>";
//        echo "UNIDADES $nuevo->cantidad<br>";
//        echo "PRECIO $nuevo->precioUnidad<br>";
        
        //Si el ID de la orden es 0, no relacionamos el conceptoFactura a una orden
        if ($nuevo->idOrden == 0) {
            $sql = "INSERT INTO `conceptocontable`(`IDNOTA`, `NUMUNIDADES`, `PRECIOUNIDAD`, `DESCRIPCION`) 
                        VALUES ($nuevo->idNota, $nuevo->cantidad, $nuevo->precioUnidad,  '$nuevo->descripcion')";
        } else {
            $sql = "INSERT INTO `conceptocontable`(`IDNOTA`, `IDORDEN`, `NUMUNIDADES`, `PRECIOUNIDAD`, `DESCRIPCION`) 
                        VALUES ($nuevo->idNota, $nuevo->idOrden,  $nuevo->cantidad, $nuevo->precioUnidad,  '$nuevo->descripcion')";
        }
        
        $resul = $this->ejecutarQuery($sql);
        
        $this->desconectar();
        
        return $resul;        
    }
    
    function getIdByIdNotaIdOrdCantPrec (ConceptoContable $concepto) {
        $this->conectar();
                
        $query = $this->ejecutarConsulta("SELECT * FROM conceptocontable WHERE idNota=$concepto->idNota AND idOrden=$concepto->idOrden 
                AND numUnidades=$concepto->cantidad AND precioUnidad=$concepto->precioUnidad");
        
        $row = mysql_fetch_array($query);
            
        if (!$row) {
            $this->idconceptoContable = 0;
        } else {
            $this->idconceptoContable = $row[0];
        }
        
        parent::desconectar();

        return $this->idconceptoContable;
    }
    
    //Recupera el ID de un conceptoContable por su IDFactura, IDOrden, Cantidad y PrecioUnida
    function getIdByIdFacIdOrdCantPrec (ConceptoContable $concepto) {
        $this->conectar();
                
        $query = $this->ejecutarConsulta("SELECT * FROM conceptocontable WHERE idFactura=$concepto->idFactura AND idOrden=$concepto->idOrden 
                AND numUnidades=$concepto->cantidad AND precioUnidad=$concepto->precioUnidad");
        
        $row = mysql_fetch_array($query);
            
        if (!$row) {
            $this->idconceptoContable = 0;
        } else {
            $this->idconceptoContable = $row[0];
        }
        
        parent::desconectar();

        return $this->idconceptoContable;
    }


    function registrarParaFactura (ConceptoContable $nuevo) {
        $this->conectar();
        
        //Si el ID de la orden es 0, no relacionamos el conceptoFactura a una orden
        if ($nuevo->idOrden == 0) {
            $sql = "INSERT INTO `conceptocontable`(`IDFACTURA`, `NUMUNIDADES`, `PRECIOUNIDAD`, `DESCRIPCION`) 
                        VALUES ($nuevo->idFactura,$nuevo->cantidad,$nuevo->precioUnidad, '$nuevo->descripcion')";
        } else {
            $sql = "INSERT INTO `conceptocontable`(`IDFACTURA`, `IDORDEN`, `NUMUNIDADES`, `PRECIOUNIDAD`, `DESCRIPCION`) 
                        VALUES ($nuevo->idFactura,$nuevo->idOrden,$nuevo->cantidad,$nuevo->precioUnidad, '$nuevo->descripcion')";
        }
        
        $resul = $this->ejecutarQuery($sql);
        
        $this->desconectar();
        
        return $resul;        
    }

    function __construct($idOrden, $cantidad, $precioUnidad, $descr) {
        $this->idOrden = $idOrden;
        $this->cantidad = $cantidad;
        $this->precioUnidad = $precioUnidad;
        $this->descripcion = $descr;
    }
    
    public function obtenerConceptosDeNota ($idNota) {
        $this->conectar();

        $sql = "SELECT clave, numOrden, numUnidades, precioUnidad, conceptoContable.descripcion FROM modelo, modelodeorden, orden, conceptoContable 
                    WHERE modelo.idmodelo = modelodeorden.idmodelo AND orden.idOrden = modelodeorden.idOrden 
                        AND orden.idOrden = conceptoContable.idOrden AND idNota=$idNota";

        $sqlResult = $this->ejecutarConsulta($sql);

        $this->desconectar();

        return $sqlResult;
    }
    
    public function obtenerConceptosDeFactura ($idFactura) {
        $this->conectar();

        $sql = "SELECT numUnidades, precioUnidad, descripcion, idorden FROM conceptocontable 
                    WHERE idFactura=$idFactura";

        $sqlResult = $this->ejecutarConsulta($sql);
        
        if ($sqlResult == false) {
            $sqlResult = $this->ejecutarConsulta("SELECT numUnidades, precioUnidad, conceptocontable.descripcion FROM conceptocontable WHERE idFactura=$idFactura");
        }

        $this->desconectar();

        return $sqlResult;
    }

    public function getIdconceptoContable() {
        return $this->idconceptoContable;
    }

    public function setIdconceptoContable($idconceptoContable) {
        $this->idconceptoContable = $idconceptoContable;
    }

    public function getIdFactura() {
        return $this->idFactura;
    }

    public function setIdFactura($idFactura) {
        $this->idFactura = $idFactura;
    }

    public function getIdOrden() {
        return $this->idOrden;
    }

    public function setIdOrden($idOrden) {
        $this->idOrden = $idOrden;
    }

    public function getCantidad() {
        return $this->cantidad;
    }

    public function setCantidad($cantidad) {
        $this->cantidad = $cantidad;
    }

    public function getPrecioUnidad() {
        return $this->precioUnidad;
    }

    public function setPrecioUnidad($precioUnidad) {
        $this->precioUnidad = $precioUnidad;
    }

    public function getDescripcion() {
        return $this->descripcion;
    }

    public function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }
    
    public function getIdNota() {
        return $this->idNota;
    }

    public function setIdNota($idNota) {
        $this->idNota = $idNota;
    }
}
?>